#ifdef GL_ES
precision mediump float;
#endif

#define PI 3.14159265359

uniform vec2 u_resolution;
uniform vec2 u_mouse;
uniform float u_time;

// 两个相减 出现了一个从pct-.02到pct+.02的过渡 是0到1的过度 查看smoothstep函数曲线就知道了
float plot(vec2 st,float pct){
    return smoothstep(pct-.02,pct,st.y)-
    smoothstep(pct,pct+.02,st.y);
}

void main(){
    vec2 st=gl_FragCoord.xy/u_resolution;
    
    float y=pow(st.x,5.);
    
    vec3 color=vec3(y);
    
    float pct=plot(st,y);
    // pct*vec3(0.,1.,0.) 好理解，就是画了y的曲线 y是pow5次方的曲线
    // (1.-pct)*color 就是画了y的曲线的补图
    // 可以理解 pct 就是那条曲线，曲线是从中心向线两边渐变的，pct就是曲线，曲线使用了绿色
    // 不是曲线的的部分，使用了color，也就是y的曲线的补图，使用了颜色
    color=(1.-pct)*color+pct*vec3(0.,1.,0.);
    
    gl_FragColor=vec4(color,1.);
}